A typical data transport network operates in a connectionless mode whereby there is no negotiation between the transmitter/receiver and the network with regard to the type or quantity of traffic that is to be sent. The transmitter simply sends the traffic on the network, and relies on the network components to deliver that traffic to the receiver accurately. These network components consist typically of routing nodes (also known as routers or switches) joined by physical links. The main function of the routing nodes is to direct incoming packets to the appropriate outgoing links.
Many communication network applications have adopted the Internet Protocol (IP), a library of routines called on by various network communications applications for transporting packets of data from node to node. The Transmission Control Protocol (TCP) is used for most IP network transactions and provides for both reliable transmission and rate adaptation in order to adjust to available network bandwidth. TCP allows adaptive use of available bandwidth and accommodation of different rates at different points in the internetwork or network.
Within the IP networks, there is a growing interest in managing data traffic in the form of aggregate flows. A flow, also referred to as a connection, is a stream of traffic under control of one sender within the network. Specifically, aggregating individual traffic flows into one larger flow simplifies the management of the network; routes can be pinned down for the aggregates more simply than if all flows were visible. Treatments such as bandwidth allocation or forwarding priority can be assigned to the aggregate rather than having to manage it on a per-flow basis. In the future, it may be desirable to provide flow control for these aggregates, similar to TCP, so that they can compete for available bandwidth in a controlled manner.
In Internet terminology, aggregating data traffic by encapsulating them into a single IP packet stream is often called tunneling, where the encapsulated traffic flow through the IP network is referred to as an aggregate trunk or tunnel. When the number of aggregate trunks becomes very large, it may be desirable to add another level of aggregation by putting several such trunks into a new, larger trunk between chosen points in the network. One way to do this is to encapsulate the packets again with another TCP/IP header. Unfortunately, adding more headers to data packets is inefficient in bandwidth use and may be problematical if the longer packets violate Maximum Transport Unit (MTU) limits. Multi-protocol Label Switching (MPLS), another form of aggregation currently under development, minimizes the overhead by using a very small label instead of a full TCP/IP header. Unfortunately, the small header envisaged for MPLS does not provide room for the information usually carried in a TCP/IP flow controlled connection.
The background information herein clearly shows that there exists a need in the industry to provide an improved mechanism for ensuring flow control of an aggregate stream between two points in a network.